package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {
    @Autowired
    private FileService fileService;

    /**
     * 文件上传
     *     请求路径: http://localhost:8091/file/upload
     *     请求类型: post
     *     请求参数:参数名称 file: 二进制的字节信息  只能用post提交 因为get提交提交大小为 2k
     *     - 返回值:  SysResult对象(ImageVO)
     *     核心API:
     *     file.transferTo("图片的全路径");
     *     MultipartFile spring提供的输入流接口
     */
    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {
        ImageVO imageVO = fileService.upload(file);
        if (imageVO == null){
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }




//    @PostMapping("/upload")
//    public SysResult upload(MultipartFile file) throws IOException {
//        String filePath = "";
//        file.transferTo(new File(filePath));
//        return SysResult.success();
//    }

    /**
     * 实现文件删除
     *     请求路径: http://localhost:8091/file/deleteFile
     *     请求类型: delete
     *     请求参数:virtualPath  文件上传时的虚拟路径  删除时需要磁盘路径一起删除
     *     返回值:  SysResult对象
     */
    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath){
        fileService.deleteFile(virtualPath);
        return SysResult.success();
    }
}
